package 启蒙阶段;

/**
 * 创建人：刘源江
 * 类描述：
 * 创建时间：2022/5/6 0:34
 **/

public class demo17抽象类 {
    public static void main(String[] args) {
        //抽象类只有一个特点：抽象类不能创建对象，其他对象跟普通类一样（抽象方法没有具体的方法体）
        //抽象类不一定有抽象方法，没有抽象方法的抽象类，为了防止创建对象
        //有抽象方法的类一定是抽象类，强制要求子类去重写完成一些事情
        Mao mao = new Mao();
        mao.eat();
    }
}

abstract class DongWu{
    public abstract void eat();//抽象规则，对儿子的要求（能够说出父亲的抽象方法存在的意义）

    public DongWu(){
        System.out.println("我是父类抽象类的构造方法，子类通过super()去访问，不写super()系统写");
    }
}

class Mao extends DongWu{
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }

//    public Mao(){
//        super();//自己不写系统写
//    }
}

class Gou extends DongWu{
    @Override
    public void eat() {
        System.out.println("狗吃肉");
    }
}
